home *** CD-ROM | disk | FTP | other *** search
- /*
- File: ThreeDMetafile.h
-
- Contains: 3D viewer support for SimpleText
-
- Version: GX 1.2 or later
-
- ** Copyright 1994-1996 Apple Computer. All rights reserved.
- **
- ** You may incorporate this sample code into your applications without
- ** restriction, though the sample code has been provided "AS IS" and the
- ** responsibility for its operation is 100% yours. However, what you are
- ** not permitted to do is to redistribute the source as "DSC Sample Code"
- ** after having made changes. If you're going to re-distribute the source,
- ** we require that you make it clear in the source that the code was
- ** descended from Apple Sample Code, but that you've made changes.
-
- */
-
-
- #include "SimpleText.h"
-
-
- #define kThreeDWindowID kThreeDBaseID
-
-
- #ifndef REZ
- typedef long ViewerObject;
-
- struct ThreeDDataRecord
- {
- WindowDataRecord w;
-
- ViewerObject viewerObject;
- };
- typedef struct ThreeDDataRecord ThreeDDataRecord, *ThreeDDataPtr;
-
- enum {
- kQ3ViewerShowBadge = 1<<0,
- kQ3ViewerActive = 1<<1,
- kQ3ViewerControllerVisible = 1<<2,
- kQ3ViewerDrawFrame = 1<<3,
- kQ3ViewerDraggingOff = 1<<4,
-
- kQ3ViewerButtonCamera = 1<<5,
- kQ3ViewerButtonTruck = 1<<6,
- kQ3ViewerButtonOrbit = 1<<7,
- kQ3ViewerButtonZoom = 1<<8,
- kQ3ViewerButtonDolly = 1<<9,
-
-
- kQ3ViewerDefault = (
- kQ3ViewerActive | kQ3ViewerControllerVisible |
- kQ3ViewerButtonCamera | kQ3ViewerButtonTruck |
- kQ3ViewerButtonOrbit | kQ3ViewerButtonDolly )
- };
-
- enum {
- uppViewerLibNewProcInfo = kCStackBased
- | RESULT_SIZE(SIZE_CODE(sizeof(Ptr)))
- | STACK_ROUTINE_PARAMETER(1, SIZE_CODE(sizeof(CGrafPtr)))
- | STACK_ROUTINE_PARAMETER(2, SIZE_CODE(sizeof(Rect*)))
- | STACK_ROUTINE_PARAMETER(3, SIZE_CODE(sizeof(long))),
- uppViewerLibDisposeProcInfo = kCStackBased
- | RESULT_SIZE(SIZE_CODE(sizeof(OSErr)))
- | STACK_ROUTINE_PARAMETER(1, SIZE_CODE(sizeof(Ptr))),
-
- uppViewerLibUseFileProcInfo = kCStackBased
- | RESULT_SIZE(SIZE_CODE(sizeof(OSErr)))
- | STACK_ROUTINE_PARAMETER(1, SIZE_CODE(sizeof(ViewerObject)))
- | STACK_ROUTINE_PARAMETER(2, SIZE_CODE(sizeof(long))),
- uppViewerLibUseDataProcInfo = kCStackBased
- | RESULT_SIZE(SIZE_CODE(sizeof(OSErr)))
- | STACK_ROUTINE_PARAMETER(1, SIZE_CODE(sizeof(ViewerObject)))
- | STACK_ROUTINE_PARAMETER(2, SIZE_CODE(sizeof(void*)))
- | STACK_ROUTINE_PARAMETER(3, SIZE_CODE(sizeof(long))),
-
- uppViewerLibWriteFileProcInfo = kCStackBased
- | RESULT_SIZE(SIZE_CODE(sizeof(OSErr)))
- | STACK_ROUTINE_PARAMETER(1, SIZE_CODE(sizeof(ViewerObject)))
- | STACK_ROUTINE_PARAMETER(2, SIZE_CODE(sizeof(long))),
- uppViewerLibWriteDataProcInfo = kCStackBased
- | RESULT_SIZE(SIZE_CODE(sizeof(unsigned long)))
- | STACK_ROUTINE_PARAMETER(1, SIZE_CODE(sizeof(ViewerObject)))
- | STACK_ROUTINE_PARAMETER(2, SIZE_CODE(sizeof(void**))),
-
- uppViewerLibDrawProcInfo = kCStackBased
- | RESULT_SIZE(SIZE_CODE(sizeof(OSErr)))
- | STACK_ROUTINE_PARAMETER(1, SIZE_CODE(sizeof(ViewerObject))),
-
- uppViewerLibGetPictProcInfo = kCStackBased
- | RESULT_SIZE(SIZE_CODE(sizeof(PicHandle)))
- | STACK_ROUTINE_PARAMETER(1, SIZE_CODE(sizeof(ViewerObject))),
- uppViewerLibGetButtonRectProcInfo = kCStackBased
- | RESULT_SIZE(SIZE_CODE(sizeof(OSErr)))
- | STACK_ROUTINE_PARAMETER(1, SIZE_CODE(sizeof(ViewerObject)))
- | STACK_ROUTINE_PARAMETER(2, SIZE_CODE(sizeof(unsigned long)))
- | STACK_ROUTINE_PARAMETER(3, SIZE_CODE(sizeof(Rect*))),
-
- uppViewerLibGetDimensionProcInfo = kCStackBased
- | RESULT_SIZE(SIZE_CODE(sizeof(OSErr)))
- | STACK_ROUTINE_PARAMETER(1, SIZE_CODE(sizeof(ViewerObject)))
- | STACK_ROUTINE_PARAMETER(2, SIZE_CODE(sizeof(long*)))
- | STACK_ROUTINE_PARAMETER(3, SIZE_CODE(sizeof(long*))),
-
- uppViewerLibSetFlagsProcInfo = kCStackBased
- | RESULT_SIZE(SIZE_CODE(sizeof(OSErr)))
- | STACK_ROUTINE_PARAMETER(1, SIZE_CODE(sizeof(ViewerObject)))
- | STACK_ROUTINE_PARAMETER(2, SIZE_CODE(sizeof(unsigned long))),
- uppViewerLibGetFlagsProcInfo = kCStackBased
- | RESULT_SIZE(SIZE_CODE(sizeof(unsigned long)))
- | STACK_ROUTINE_PARAMETER(1, SIZE_CODE(sizeof(ViewerObject))),
-
- uppViewerLibSetBoundsProcInfo = kCStackBased
- | RESULT_SIZE(SIZE_CODE(sizeof(OSErr)))
- | STACK_ROUTINE_PARAMETER(1, SIZE_CODE(sizeof(ViewerObject)))
- | STACK_ROUTINE_PARAMETER(2, SIZE_CODE(sizeof(Rect*))),
- uppViewerLibGetBoundsProcInfo = kCStackBased
- | RESULT_SIZE(SIZE_CODE(sizeof(OSErr)))
- | STACK_ROUTINE_PARAMETER(1, SIZE_CODE(sizeof(ViewerObject)))
- | STACK_ROUTINE_PARAMETER(2, SIZE_CODE(sizeof(Rect*))),
-
- uppViewerLibSetPortProcInfo = kCStackBased
- | RESULT_SIZE(SIZE_CODE(sizeof(OSErr)))
- | STACK_ROUTINE_PARAMETER(1, SIZE_CODE(sizeof(ViewerObject)))
- | STACK_ROUTINE_PARAMETER(2, SIZE_CODE(sizeof(CGrafPtr))),
- uppViewerLibGetPortProcInfo = kCStackBased
- | RESULT_SIZE(SIZE_CODE(sizeof(CGrafPtr)))
- | STACK_ROUTINE_PARAMETER(1, SIZE_CODE(sizeof(ViewerObject))),
-
- uppViewerLibEventProcInfo = kCStackBased
- | RESULT_SIZE(SIZE_CODE(sizeof(Boolean)))
- | STACK_ROUTINE_PARAMETER(1, SIZE_CODE(sizeof(ViewerObject)))
- | STACK_ROUTINE_PARAMETER(2, SIZE_CODE(sizeof(EventRecord*))),
- uppViewerLibAdjustCursorProcInfo = kCStackBased
- | RESULT_SIZE(SIZE_CODE(sizeof(Boolean)))
- | STACK_ROUTINE_PARAMETER(1, SIZE_CODE(sizeof(ViewerObject)))
- | STACK_ROUTINE_PARAMETER(2, SIZE_CODE(sizeof(Point*))),
-
- uppViewerLibGetStateProcInfo = kCStackBased
- | RESULT_SIZE(SIZE_CODE(sizeof(unsigned long)))
- | STACK_ROUTINE_PARAMETER(1, SIZE_CODE(sizeof(ViewerObject))),
-
- uppViewerLibClearProcInfo = kCStackBased
- | RESULT_SIZE(SIZE_CODE(sizeof(OSErr)))
- | STACK_ROUTINE_PARAMETER(1, SIZE_CODE(sizeof(ViewerObject))),
- uppViewerLibCutProcInfo = kCStackBased
- | RESULT_SIZE(SIZE_CODE(sizeof(OSErr)))
- | STACK_ROUTINE_PARAMETER(1, SIZE_CODE(sizeof(ViewerObject))),
- uppViewerLibCopyProcInfo = kCStackBased
- | RESULT_SIZE(SIZE_CODE(sizeof(OSErr)))
- | STACK_ROUTINE_PARAMETER(1, SIZE_CODE(sizeof(ViewerObject))),
- uppViewerLibPasteProcInfo = kCStackBased
- | RESULT_SIZE(SIZE_CODE(sizeof(OSErr)))
- | STACK_ROUTINE_PARAMETER(1, SIZE_CODE(sizeof(ViewerObject)))
-
- };
-
- // Proc pointer typedefs
- typedef ViewerObject (*ViewerLib_NewType) (CGrafPtr port, Rect *rect, unsigned long flags);
- typedef OSErr (*ViewerLib_DisposeType) (ViewerObject theViewer);
-
- typedef OSErr (*ViewerLib_UseFileType) (ViewerObject theViewer, long refNum);
- typedef OSErr (*ViewerLib_UseDataType) (ViewerObject theViewer, void *data, long size);
-
- typedef OSErr (*ViewerLib_WriteFileType) (ViewerObject theViewer, long refNum);
- typedef unsigned long (*ViewerLib_WriteDataType) (ViewerObject theViewer, void **data);
-
- typedef OSErr (*ViewerLib_DrawType) (ViewerObject theViewer);
-
- typedef PicHandle (*ViewerLib_GetPictType) (ViewerObject theViewer);
- typedef OSErr (*ViewerLib_GetButtonRectType) (ViewerObject theViewer, unsigned long button, Rect *rect);
-
- typedef OSErr (*ViewerLib_GetDimensionType) (ViewerObject theViewer, long *width, long* height);
-
- typedef OSErr (*ViewerLib_SetFlagsType) (ViewerObject theViewer, unsigned long flags);
- typedef unsigned long (*ViewerLib_GetFlagsType) (ViewerObject theViewer);
-
- typedef OSErr (*ViewerLib_SetBoundsType) (ViewerObject theViewer, Rect *bounds);
- typedef OSErr (*ViewerLib_GetBoundsType) (ViewerObject theViewer, Rect *bounds);
-
- typedef OSErr (*ViewerLib_SetPortType) (ViewerObject theViewer, CGrafPtr port);
- typedef CGrafPtr (*ViewerLib_GetPortType) (ViewerObject theViewer);
-
- typedef Boolean (*ViewerLib_EventType) (ViewerObject theViewer, EventRecord *evt);
- typedef Boolean (*ViewerLib_AdjustCursorType) (ViewerObject theViewer, Point *pt);
-
- typedef unsigned long (*ViewerLib_GetStateType) (ViewerObject theViewer);
-
- typedef OSErr (*ViewerLib_ClearType) (ViewerObject theViewer);
- typedef OSErr (*ViewerLib_CutType) (ViewerObject theViewer);
- typedef OSErr (*ViewerLib_CopyType) (ViewerObject theViewer);
- typedef OSErr (*ViewerLib_PasteType) (ViewerObject theViewer);
-
-
- typedef struct
- {
- ProcInfoType info;
- void *entry;
- } GlobalEntry;
-
- // Macro calls
- #define ViewerLib_New(A,B,C) (*(ViewerLib_NewType)(gProcPointers[0].entry)) (A, B, C)
- #define ViewerLib_Dispose(A) (*(ViewerLib_DisposeType)(gProcPointers[1].entry)) (A)
-
- #define ViewerLib_UseFile(A,B) (*(ViewerLib_UseFileType)(gProcPointers[2].entry)) (A, B)
- #define ViewerLib_UseData(A,B,C) (*(ViewerLib_UseDataType)(gProcPointers[3].entry)) (A, B, C)
-
- #define ViewerLib_WriteFile(A,B) (*(ViewerLib_WriteFileType)(gProcPointers[4].entry)) (A, B)
- #define ViewerLib_WriteData(A,B) (*(ViewerLib_WriteDataType)(gProcPointers[5].entry)) (A, B)
-
- #define ViewerLib_Draw(A) (*(ViewerLib_DrawType)(gProcPointers[6].entry)) (A)
-
- #define ViewerLib_GetPict(A) (*(ViewerLib_GetPictType)(gProcPointers[7].entry)) (A)
- #define ViewerLib_GetButtonRect(A,B,C) (*(ViewerLib_GetButtonRectType)(gProcPointers[8].entry)) (A,B,C)
-
- #define ViewerLib_GetDimension(A,B,C) (*(ViewerLib_GetDimensionType)(gProcPointers[9].entry)) (A,B,C)
-
- #define ViewerLib_SetFlags(A,B) (*(ViewerLib_SetFlagsType)(gProcPointers[10].entry)) (A, B)
- #define ViewerLib_GetFlags(A) (*(ViewerLib_GetFlagsType)(gProcPointers[11].entry)) (A)
-
- #define ViewerLib_SetBounds(A,B) (*(ViewerLib_SetBoundsType)(gProcPointers[12].entry)) (A, B)
- #define ViewerLib_GetBounds(A,B) (*(ViewerLib_GetBoundsType)(gProcPointers[13].entry)) (A, B)
-
- #define ViewerLib_SetPort(A,B) (*(ViewerLib_SetPortType)(gProcPointers[14].entry)) (A, B)
- #define ViewerLib_GetPort(A) (*(ViewerLib_GetPortType)(gProcPointers[15].entry)) (A)
-
- #define ViewerLib_Event(A,B) (*(ViewerLib_EventType)(gProcPointers[16].entry)) (A, B)
- #define ViewerLib_AdjustCursor(A,B) (*(ViewerLib_AdjustCursorType)(gProcPointers[17].entry)) (A, B)
-
- #define ViewerLib_GetState(A) (*(ViewerLib_GetStateType)(gProcPointers[18].entry)) (A)
-
- #define ViewerLib_Clear(A) (*(ViewerLib_ClearType)(gProcPointers[19].entry)) (A)
- #define ViewerLib_Cut(A) (*(ViewerLib_CutType)(gProcPointers[20].entry)) (A)
- #define ViewerLib_Copy(A) (*(ViewerLib_CopyType)(gProcPointers[21].entry)) (A)
- #define ViewerLib_Paste(A) (*(ViewerLib_PasteType)(gProcPointers[22].entry)) (A)
-
- #endif
-